Crate ctor

Source
Expand description

Procedural macro for defining global constructor/destructor functions.

This provides module initialization/teardown functions for Rust (like __attribute__((constructor)) in C/C++) for Linux, OSX, and Windows via the #[ctor] and #[dtor] macros.

This library works and is regularly tested on Linux, OSX and Windows, with both +crt-static and -crt-static. Other platforms are supported but not tested as part of the automatic builds. This library will also work as expected in both bin and cdylib outputs, ie: the ctor and dtor will run at executable or library startup/shutdown respectively.

This library currently requires Rust > 1.31.0 at a minimum for the procedural macro support.

Attribute Macrosยง

  • Marks a function or static variable as a library/executable constructor. This uses OS-specific linker sections to call a specific function at load time.
  • Marks a function as a library/executable destructor. This uses OS-specific linker sections to call a specific function at termination time.